The invention relates to transferring data along a network, and, in particular to filtering idle, unassigned, and erroneous data cells from a data stream in a network operating in asynchronous transfer mode (ATM).
ATM Networks transfer digital information, such as voice, video, and other data (hereinafter referred to collectively as data), between nodes of the network in a bit stream formed of sequentially received data cells. Each of the cells includes a header and a payload. The header contains information about each cell, and the payload contains the data that the ATM Network transfers.
ATM Networks operate according to specific standards. For example, the Telecommunication Standardization Sector for the International Telecommunication Union (the ITU) has developed standards and recommendations for the operation of ATM networks. The ITU-T standards define cells having fifty-three bytes, i.e., 424 bits divides into fifty-three eight-bit sections. The first five bytes form the header of the cell; the subsequent forty-eight bytes form the payload of the cell. The header provides the node of the network, which receives the associated cell (i.e., the receiving node), with information about the cell.
For example, in some cases, the header indicates that the roll of the associated cell is to maintain the line transmission rate between the nodes of the ATM network. The node of the network, which is transmitting the associated cell (i.e., the transmitting node), may not have data to transmit to the receiving node. However, based on the ITU-T standard, the receiving node expects to receive cells in the bit stream at a predetermined line transmission rate. Therefore, when no data is available for transmission, the transmitting node will formulate a xe2x80x9cblankxe2x80x9d cell (i.e., an unassigned cell or an idle cell). The transmitting node designates that the cell is unassigned or idle in the cell header, and transmits the cell in the bit stream to the receiving node to maintain the predetermined line transmission rate.
In other cases, the cell header will indicate that the cell may have been corrupted. Every cell header contains a Header Error Control (HEC) code that is a checksum indicating if the header of the received cell contains an error. The transmitting node formulates the HEC code based on the first four bytes of the cell header and transmits the HEC code in the fifth/last byte of the header. To save time, the HEC code is a checksum of the header only and is not a checksum of the entire fifty-three byte cell. When the cell has an erroneous header, the receiving node discards cell. For example, an HEC code that indicates an error in the cell header may result in a cell delivered through the wrong channel.
ATM Networks store each received cell and examine the associated headers to determine if the cells are idle, are unassigned, or have erroneous headers. Idle cells, unassigned cells, and cells with erroneous headers are discarded by the receiving node of the ATM network because they do not contain wanted data.
One aspect of the invention is a method for filtering unwanted data cells transmitted along a network by examining a fractional portion of each data cell to make a determination of whether each data cell is a wanted data cell or an unwanted data cell. Based on the determination, the data cells are selectively stored: the entire portion of each corresponding wanted cell is stored, and the remaining unstored portion of each corresponding unwanted cell is rejected from storage.
Preferred embodiments of this aspect of the invention include the following features.
A data communication network, which operates in asynchronous transfer mode, has a data transmitting node and a data receiving node. The nodes transfer data cells having associated headers followed by associated payloads. Each associated header indicates whether or not the data cell received by the data receiving node is unassigned, is idle, or has an erroneous header.
The data receiving node includes a network device, typically consisting of a hardware filter, such as a pattern matching filter in which the pattern is defined in the network software such as a device driver. The filter controls the storage of each header of the sequentially received cells in a header memory. The device stores cells that are non-idle, are assigned, and have non-erroneous headers in a different cell memory. The network device rejects from storage any payloads associated with idle, unassigned, and erroneous cells.
To store received cells or reject payloads from storage, the network device examines the header of each associated received cell to determine if the received cell is an idle cell, is an unassigned cell, or has an erroneous header. The network device rejects cells from storage by setting a pointer to a location of a subsequent received cell in the stream of the sequentially received cells. The pointer indicates the location of the associated header of the subsequent received cell.
The receiving node stores the header of each associated received cell based on a system clock established by the receiving node independently of the data reception clock. The system clock has a higher frequency than the data reception clock.
Among other advantages, each embodiment within the scope of the claims may have one or more of the following advantages. The method and network device each allows efficient processing of received cells because the payloads of unassigned, idle, and erroneous cells are not stored. The method and network device each allows the receiving node to store only the payloads of cells containing wanted data without expending additional processing time to store the payloads of cells containing unwanted data.
In addition, cells of each received cell having wanted data can be processed according to a system clock. The system clock can operate at a faster frequency than a data reception clock that is used to store received cells, e.g., in a buffer at a predetermined line transmission rate between the transmitting and receiving nodes. Also, because only a single five byte header is initially stored rather than the entire 53 byte received cell, the memory used to filter out unwanted data cells can be allocated efficiently, for example, the memory dedicated to processing incoming cells can be minimized.